import request from "@/utils/request"

/**
 * 获取员工列表
 * @param params
 * @returns {*}
 */
export const getEmployeeList = (params) => {
  return request({
    url: '/sys/user',
    method: 'GET',
    params
  })
}

/**
 * 导出员工的excel
 * @returns {AxiosPromise}
 */
export const exportEmployee = () => {
  return request({
    url: '/sys/user/export',
    // 改变接收数据的类型
    responseType: 'blob' // 使用blob接收二进制文件流
  })
}

/**
 * 下载员工导入模板
 * @returns {AxiosPromise}
 */
export const getExportTemplate = () => {
  return request({
    url: '/sys/user/import/template',
    responseType: 'blob' // 二进制文件流
  })
}

/**
 * 上传用户的excel
 * @param data
 * @returns {AxiosPromise}
 */
export const uploadExcel = (data) => {
  return request({
    url: '/sys/user/import',
    method: 'POST',
    data // form-data 类型 因为要上传文件类型
  })
}

/**
 * 删除员工
 * @param id
 * @returns {AxiosPromise}
 */
export const delEmployee = (id) => {
  return request({
    url: `/sys/user/${id}`,
    method: 'DELETE'
  })
}

/**
 * 新增员工
 * @param data
 * @returns {AxiosPromise}
 */
export const addEmployee = (data) => {
  return request({
    url: '/sys/user',
    method: 'POST',
    data
  })
}

/**
 * 获取员工详情
 * @param id
 * @returns {*}
 */
export const getEmployeeDetail = (id) => {
  return request({
    url: `/sys/user/${id}`,
    method: 'GET'
  })
}

/**
 * 更新员工信息
 * @param data
 * @returns {AxiosPromise}
 */
export const updateEmployee = (data) => {
  return request({
    url: `/sys/user/${data.id}`,
    method: 'PUT',
    data
  })
}

/**
 * 获取可用的角色
 * @returns {AxiosPromise}
 */
export const getEnableRoleList = () => {
  return request({
    url: '/sys/role/list/enabled',
    method: 'GET'
  })
}

/**
 * 分配员工角色
 * @param data
 * @returns {AxiosPromise}
 */
export const assignRole = (data) => {
  return request({
    url: '/sys/user/assignRoles',
    method: 'PUT',
    data
  })
}
